import 'package:bitcoin_mine/utils/web_view_helper.dart';
import 'package:flutter/services.dart';
import 'package:get/get.dart';
import 'package:flutter/material.dart';

class SettingsController extends GetxController {
  // 用户登录状态
  final RxBool isLoggedIn = false.obs;

  // 用户信息
  final RxString userName = 'Name'.obs;
  final RxString userId = '2445850'.obs;

  // VIP升级横幅显示状态
  final RxBool showVipBanner = true.obs;

  // 菜单项列表
  final RxList<Map<String, dynamic>> menuItems =
      <Map<String, dynamic>>[
        // {
        //   'id': 'physical_machine',
        //   'icon': Icons.info,
        //   'title': 'Physical machine room',
        //   'subtitle': '',
        // },
        {
          'id': 'vip_upgrade',
          'icon': Icons.diamond,
          'title': 'VIP upgrade',
          'subtitle': '',
        },
        // {
        //   'id': 'faq',
        //   'icon': Icons.help,
        //   'title': 'Frequently Asked Questions',
        //   'subtitle': '',
        // },
        {'id': 'rating', 'icon': Icons.star, 'title': 'Rating', 'subtitle': ''},
        // {
        //   'id': 'comment',
        //   'icon': Icons.chat_bubble,
        //   'title': 'Comment',
        //   'subtitle': '',
        // },
        {
          'id': 'customer_service',
          'icon': Icons.headset_mic,
          'title': 'Customer service',
          'subtitle': '',
        },
        {
          'id': 'privacy',
          'icon': Icons.verified_user,
          'title': 'Privacy website',
          'subtitle': '',
        },
        {
          'id': 'terms',
          'icon': Icons.description,
          'title': 'Terms of Service',
          'subtitle': '',
        },
      ].obs;

  // 切换登录状态
  void toggleLoginStatus() {
    isLoggedIn.value = !isLoggedIn.value;
    if (!isLoggedIn.value) {
      // 登出时重置用户信息
      userName.value = 'Name';
      userId.value = '2445850';
    }
  }

  // 设置用户信息
  void setUserInfo(String name, String id) {
    userName.value = name;
    userId.value = id;
    isLoggedIn.value = true;
  }

  // VIP升级
  void vipUpgrade() {
    Get.toNamed('/subscription');
  }

  // 处理菜单项点击
  void handleMenuItemTap(String itemId) {
    switch (itemId) {
      case 'physical_machine':
        // Get.snackbar('提示', '物理机房功能待实现', snackPosition: SnackPosition.BOTTOM);
        break;
      case 'vip_upgrade':
        vipUpgrade();
        break;
      case 'faq':
      // Get.snackbar('提示', '常见问题功能待实现', snackPosition: SnackPosition.BOTTOM);
      // break;
      case 'rating':
        toMarket();
        // Get.snackbar('提示', '评分功能待实现', snackPosition: SnackPosition.BOTTOM);
        break;
      case 'comment':
        // Get.snackbar('提示', '评论功能待实现', snackPosition: SnackPosition.BOTTOM);
        break;
      case 'customer_service':
        Get.toNamed('/chat-customer');
        break;
      case 'privacy':
        // Get.snackbar('提示', '隐私网站功能待实现', snackPosition: SnackPosition.BOTTOM);
        WebViewHelper.openPrivacyPolicy();
        break;
      case 'terms':
        // Get.snackbar('提示', '服务条款功能待实现', snackPosition: SnackPosition.BOTTOM);
        WebViewHelper.openUserAgreement();
        break;
      default:
        //  Get.snackbar('提示', '功能开发中', snackPosition: SnackPosition.BOTTOM);
        break;
    }
  }

  // 隐藏VIP横幅
  void hideVipBanner() {
    showVipBanner.value = false;
  }

  void toMarket() async {
    final platform = const MethodChannel("bitcoin.flutter.dev/channel");

    try {
      await platform.invokeMethod("toMarket");
    } on PlatformException {}
  }
}
